iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
0

為何使用 body-parse


之前有提到 RESTful 幾個 Method,有些像是 POST、PATCH,是需要在 Request 時,一併送出 body 當作參數給 Server,並且可以在 headers,去設定 content-type 參數的類型,在 Server 就必須依照 Request 來的 type 去做解析,如果是原生處理的話可以會長下面這樣...

    const express = require('express');
    const app = express();
    app.use('/', (req, res, next) => {
    	if(req.headers['content-type'].indexOf('application/json')!==-1){
        // JSON 格式請求體解析
      } else if(req.headers['content-type'].indexOf('application/octet-stream')!==-1){
        // Raw 格式請求體解析
        // ……
      } else if(req.headers['content-type'].indexOf('text/plain')!==-1){
        // text 文本格式請求體解析
        // ……
      } else if(req.headers['content-type'].indexOf('application/x-www-form-urlencoded')!==-1){
        // URL-encoded 格式請求體解析
        // ……
      } else {
      	// 其它格式解析
      }
    });
    app.listen(3000);

而 node 有許多這類型去解析 body 的套件,像是今天提到的 body-parser,透過這個插件可以解析 JSON、Raw、text、XML、URL-encoded 格式的請求。

怎麼用呢?


首先先安裝 body-parser

    npm i body-parser

再來在我們之前那隻 server.js中,上面加入

    const bodyParser = require('body-parser');
    
    // 解析 application/x-www-form-urlencoded
    app.use(bodyParser.urlencoded({
        extended: false,
    }));
    // 解析 application/json
    app.use(bodyParser.json());

通常加這 2 個就能應付大部分的需求,若是有特別需要處理的在補上就可以了。


上一篇
Day 9 CORS 跨域存取
下一篇
Day 11 串接 MongoDB 起手式
系列文
30 天 node.js 學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言